<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Concept: 需求管理</title>
<meta name="uma.type" content="Concept">
<meta name="uma.name" content="requirements_management">
<meta name="uma.presentationName" content="需求管理">
<meta name="element_type" content="concept">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="8.93441552545224E-307"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Concept: 需求管理</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/concept.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">需求管理是一种查找、记载、组织和跟踪系统不断变化的需求的系统方法。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/roles/rup_system_analyst_C3C9C9AC.html" guid="{F1F206DF-3AA0-4AC0-92EF-8E4A01B6C5B5}">系统分析人员</a>
</li>
<li>
<a href="./../../../rup/domains/requirements_58267518.html" guid="_KVkLoN7HEdm8G6yT7-Wdqw">需求</a>
</li>
<li>
<a href="./../../../rup/workproducts/rup_requirements_management_plan_1CA2ED11.html" guid="{53CFF11F-D0DB-4C92-B4D8-90D46B0EE3DF}">需求管理计划</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="XE_requirements_management__as_a_feature_of_the_Rational_Unified_Process" key="需求管理（requirements management）" text="作为 Neusoft Unified Process 的功能" name="XE_requirements_management__as_a_feature_of_the_Rational_Unified_Process" class="index"></a><a id="Top" name="Top"></a>
<h3>
    <a id="What is Requirements Management" name="What is Requirements Management">什么是需求管理？</a>
</h3>
<p>
    需求管理是一种查找、记载、组织和跟踪系统不断变化的需求的系统方法。
</p>
<p>
    我们将<a class="elementLinkWithUserText" href="./../../../rup/guidances/concepts/requirements_62E28784.html" guid="4.582668643506599E-305">需求</a>定义为：
</p>
<blockquote>
    <blockquote>
        <p>
            系统必须符合的条件或能达到的能力。
        </p>
    </blockquote>
</blockquote>
<p>
    需求管理的正式定义是：它是一种系统的方法，用于以下方面：
</p>
<ul>
    <li>
        获取、组织和记载<a class="elementLinkWithUserText" href="./../../../rup/guidances/concepts/types_of_requirements_528C097C.html" guid="5.360970653483052E-305">系统需求</a>
    </li>
    <li>
        使客户和项目团队就系统不断变化的需求确立和保持一致意见。
    </li>
</ul>
<p>
    有效需求管理的关键因素包括保持明确的<a class="elementLink" href="./../../../rup/guidances/concepts/requirements_62E28784.html" guid="4.582668643506599E-305">需求</a>说明，以及每种<a class="elementLinkWithUserText" href="./../../../rup/guidances/concepts/types_of_requirements_528C097C.html" guid="5.360970653483052E-305">需求类型</a>的适用<a class="elementLinkWithUserText" href="./../../../rup/workproducts/rup_requirements_attributes_EFE5ABAC.html" guid="{D0E2E7A1-4179-470E-AA18-419D5FEA275D}">属性</a>和对其他需求及其他项目工作产品的<a class="elementLink" href="./../../../rup/guidances/concepts/traceability_8F6B898D.html" guid="1.4005695544042474E-306">可跟踪性</a>。
</p>
<p>
    收集需求可能听起来是相当简单的任务。然而，在实际项目中，您会遇到困难，因为：
</p>
<ul>
    <li>
        需求并非总是明显的，并可能有许多来源。
    </li>
    <li>
        需求并非总是很容易用语言表达清楚。
    </li>
    <li>
        有许多不同详细程度的不同类型的需求。
    </li>
    <li>
        如果不加控制，需求的数量可能会变得难以管理。
    </li>
    <li>
        需求是彼此相关的，并且与软件工程流程的其他工作产品也是相关的。
    </li>
    <li>
        需求具有唯一的属性或属性值。比如，它们不是同等重要的，得到满足的难易程度也不同。
    </li>
    <li>
        存在许多利益方，这意味着要由跨职能的几组人来管理需求。
    </li>
    <li>
        需求会变化。
    </li>
</ul>
<p>
    因此，您需要在组织中发展哪些技能才能帮助您处理这些困难呢？我们已了解到，以下技能很重要，需要掌握：
</p>
<ul>
    <li>
        <a href="#Problem Analysis">问题分析</a>
    </li>
    <li>
        <a href="#Understanding Stakeholder Needs">理解项目干系人需要</a>
    </li>
    <li>
        <a href="#Defining the System">定义系统</a>
    </li>
    <li>
        <a href="#Managing the Scope of the Project">管理项目范围</a>
    </li>
    <li>
        <a href="#Refining the System Definition">优化系统定义</a>
    </li>
    <li>
        <a href="#Managing Changing Requirements">管理不断变化的需求</a>
    </li>
</ul>
<h3>
    <a id="Problem Analysis" name="Problem Analysis">问题分析</a>
</h3>
<p>
    执行问题分析以理解问题和初始的项目干系人需要，以及提议高级解决方案。这是一种推理和分析行为，以查找“隐藏在问题后面的问题”。在问题分析期间，将对真正的问题以及谁是项目干系人达成一致。并且，要定义解决方案的界限（从业务角度而言），以及解决方案的业务约束。还要分析项目的商业理由，这样能对正在构建的系统中所作的投资的期望收益有较好的了解。
</p>
<p>
    另请参阅<a class="elementLinkWithType" href="./../../../rup/capabilitypatterns/analyze_the_problem_67C3076B.html" guid="{554ECC71-6D6C-4ABD-B7CE-357973C63B9F}">Activity: 分析问题</a>。
</p>
<h3>
    <a id="Understanding Stakeholder Needs" name="Understanding Stakeholder Needs">理解项目干系人需要</a>
</h3>
<p>
    需求有许多来源，比如客户、合作伙伴、用户和领域专家。您需要知道如何对来源方作出最佳的确定、访问这些来源以及如何以最佳方式从这些来源引发信息。提供此信息的主要来源的个人被称为项目中的项目干系人。如果您正在开发一个要在公司内部使用的信息系统，您可以将具有用户经验和业务领域专业知识的人员包括到开发团队中。通常您要在业务模型级别而非系统级别上开始讨论。如果您正在开发一个要向市场出售的产品，您可能要广泛地利用销售人员来更好地理解该市场中的客户需要。
</p>
<p>
    可以使用诸如访谈、头脑风暴、建立概念原型、问卷和竞争分析这样的技术来执行引发活动。引发的结果将是以文字和图形描述的请求或需要的列表，并且已对这些请求或需要指定了彼此相对的优先级。
</p>
<p>
    另请参阅<a class="elementLinkWithType" href="./../../../rup/capabilitypatterns/understand_stakeholder_needs_3FFFF8B6.html" guid="{F9E2B414-29F4-48F9-B263-35570D64314B}">Activity: 了解项目干系人需要</a>。
</p>
<h3>
    <a id="Defining the System" name="Defining the System">定义系统</a>
</h3>
<p>
    定义系统意味着将对项目干系人需要的理解转换和组织成对要构建的系统的有意义的描述。在系统定义初期，要决定需求的构成部分、文档格式、语言形式、需求指定程度（数量以及详细程度）、请求优先级和预估工作量（在独立的练习中，不同的人通常会给予两种极为不同的评估）、技术和管理风险以及初始范围。此活动的一部分可能还包括与最重要的项目干系人请求直接相关的早期原型和设计模型。系统定义的结果是对系统的描述，该描述同时采用自然语言和图解方式。
</p>
<p>
    另请参阅<a class="elementLinkWithType" href="./../../../rup/capabilitypatterns/define_the_system_ED861056.html" guid="{20E30ECF-7359-45EC-AA5F-8A7BFA21C472}">Activity: 定义系统</a>。
</p>
<h3>
    <a id="Managing the Scope of the Project" name="Managing the Scope of the Project">管理项目范围</a>
</h3>
<p>
    为了有效地运行项目，您需要仔细地根据来自所有项目干系人的意见为需求确定优先级，并管理项目的范围。某些开发人员会着力于所谓的“复活节彩蛋”（开发人员觉得有意思且具挑战性的特性）而非及早致力于用于缓解项目风险或稳定应用程序架构的那些任务，因而有许多项目受到影响。为确保您尽可能早地解决或缓解项目中的风险，您应该递增式地开发系统，为用于缓解项目中已知风险的每一个增量仔细选择需求。为此，您需要与项目的项目干系人协商（每次迭代的）范围。这通常需要在管理项目不同阶段的输出的期望值方面有良好的技能。您还需要控制需求来源、项目的工作产品的外观以及开发流程本身。
</p>
<p>
    另请参阅<a class="elementLinkWithType" href="./../../../rup/capabilitypatterns/manage_the_scope_of_the_system_7E0B34E5.html" guid="{CA9197A9-051E-4845-A7FC-2A8750BD8C02}">Activity: 管理系统范围</a>。
</p>
<h3>
    <a id="Refining the System Definition" name="Refining the System Definition">优化系统定义</a>
</h3>
<p>
    提供详细系统定义的方式应使项目干系人能理解、同意和签署该定义。它不仅需要涉及功能、还需要遵循任何法律或规章要求、可用性、可靠性、性能、可支持性和可维护性。通常会犯的错误是，认为您觉得构建起来很复杂构建的系统就需要有一个复杂的定义。这导致难以解释项目和系统的用途。人们可能会留下深刻印象，但不会提供良好的意见，因为他们不理解。您应投入大量的努力来了解文档（您为描述系统而生成的文档）的读者。通常会发现有必要为不同的读者生成不同类型的描述。
</p>
<p>
    我们已知道，用例方法（通常与简单的可视原型结合使用）是一种非常有效的用于沟通系统的用途和定义系统的详细信息的方法。用例帮助将需求置于某个环境中并描述有关如何使用系统的事例。
</p>
<p>
    详细系统定义的另一个组成部分是陈述应如何测试系统。有关要执行哪些测试的测试计划和定义可告知我们将要验证哪些系统能力。
</p>
<p>
    另请参阅<a class="elementLinkWithType" href="./../../../rup/capabilitypatterns/refine_the_system_definition_E67B8011.html" guid="{0FEE5795-6090-4D82-9BDB-925E5F0D9985}">Activity: 优化系统定义</a>。
</p>
<h3>
    <a id="Managing Changing Requirements" name="Managing Changing Requirements">管理不断变化的需求</a>
</h3>
<p>
    无论您如何仔细地定义需求，也始终会有变化的事物。使不断变化的需求变得复杂而难以管理的原因不仅是因为变更的需求意味着在实现特定的新特性方面需要耗费或多或少的时间，还因为一个需求的变更可能会对其他需求有影响。您需要确保为需求提供一种可弹性适应变化的结构，并确保使用可跟踪性链接来表示需求与开发生命周期的其他工作产品之间的依赖关系。管理变更包括如下活动：建立基线、确定哪些依赖关系很重要而值得跟踪、建立相关项之间的可跟踪性以及变更控制。
</p>
<p>
    另请参阅<a class="elementLinkWithType" href="./../../../rup/capabilitypatterns/manage_changing_requirements_FF6AC18D.html" guid="{28B39D62-9D73-4254-9CB8-26CFA737D45E}">Activity: 管理不断变化的需求</a>。
</p>
<h3>
    <a id="MoreInfo" name="MoreInfo">更多信息</a>
</h3>
<p>
    可在以下部分找到关于此主题的更多信息：
</p>
<p>
    <a class="elementLinkWithType" href="./../../../rup/guidances/concepts/requirements_62E28784.html" guid="4.582668643506599E-305">Concept: 需求</a><br />
    <a class="elementLinkWithType" href="./../../../rup/guidances/concepts/types_of_requirements_528C097C.html" guid="5.360970653483052E-305">Concept: 需求类型</a><br />
    <a class="elementLinkWithType" href="./../../../rup/guidances/concepts/traceability_8F6B898D.html" guid="1.4005695544042474E-306">Concept: 可跟踪性</a><br />
    <a class="elementLinkWithType" href="./../../../rup/guidances/whitepapers/applying_requirements_management_with_use_cases_A431D8A1.html" guid="1.4430543155816335E-305">Whitepaper: 使用用例应用需求管理</a>
</p><br />
<br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
